<?php

namespace app\admin\controller;

use think\Controller;
use think\Request;
use think\Db;
use app\admin\validate\ArticleValidate;
use app\common\model\Articles;

class Article extends Controller
{
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {
        //查询数据
        $res = model('articles')->order('id desc')->paginate(2);

//        foreach ($res as $v){
//            dump($v->cate);
//        }
//        die();

        //显示文章列表
        return view('admin@article/index', compact('res'));
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        //查询栏目名称显示到页面
        $data = Db::name('cates')->select();

        //显示添加文章页面
        return view('admin@article/create', compact('data'));

    }

    /**
     * 保存新建的资源
     *
     * @param \think\Request $request
     * @return \think\Response
     */
    public function save(Request $request)
    {

        //添加文章
        //接受数据
        $input = $request->post();
        $input['users_id'] = session('admin.user.id');
        $res = $this->validate($input, ArticleValidate::class);
        if (true !== $res) {
            return $this->error($res);
        }
        //添加数据
        $res = Articles::create($input);


        if (!$res) {
            return $this->error('添加失败!');
        }

        return $this->success('添加成功', '/admin/art');
    }

    /**
     * 显示指定的资源
     *
     * @param int $id
     * @return \think\Response
     */
    public function read($id)
    {
        //
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param int $id
     * @return \think\Response
     */
    public function edit($id)
    {
        //查询数据
        $data = Articles::where('id', $id)->find();
        $cdata = db('cates')->select();
        //显示修改页面
        return view('admin@article/edit', compact('data', 'cdata'));

    }

    /**
     * 保存更新的资源
     *
     * @param \think\Request $request
     * @param int $id
     * @return \think\Response
     */
    public function update(Request $request, int $id)
    {
        //接受数据
        $res = $request->put();

        //加入数据库
        unset($res['_method']);
        $res = Articles::where('id', $id)->update($res);

        if (!$res) {
            return $this->error('修改失败!', url('article/index'));
        }
        return redirect(url('article/index'));
    }

    /**
     * 删除指定资源
     *
     * @param int $id
     * @return \think\Response
     */
    public function delete($id)
    {
        //接受要删除的数据
        $res = Articles::where('id', $id)->delete();
        if (!$res) {
            return $this->error('删除失败!');
        }
        return $this->success('删除成功!');
    }
}
